export const getInputs = () => [['aaaa']];

/**
 * [**5. 最长回文子串**](https://leetcode.cn/problems/longest-palindromic-substring/)
 *
 * 给你一个字符串 s，找到 s 中最长的回文子串。
 * 如果字符串的反序与原始字符串相同，则该字符串称为回文字符串。
 *
 * 1. **示例 1：**
 * ```
 * 输入：s = "babad"
 * 输出："bab"
 * 解释："aba" 同样是符合题意的答案。
 * ```
 *
 * 2. **示例 2：**
 * ```
 * 输入：s = "cbbd"
 * 输出："bb"
 * ```
 *
 * @param s
 * @returns
 */
export default function (s: string): string {
	const isPalindromic = (str: string) => {
		const len = str.length;
		const halfLen = len / 2;
		for (let index = 0; index < halfLen; index++) {
			if (str.charAt(index) !== str.charAt(len - index - 1)) {
				return false;
			}
		}

		return true;
	};

	const length = s.length;

	const slide = (len: number): string => {
		if (len === 1) return s.slice(0, 1);

		let times = 0;
		const maxTimes = length - len + 1;

		while (times < maxTimes) {
			const slicedStr = s.slice(times, len + times);
			if (isPalindromic(slicedStr)) return slicedStr;
			times++;
		}

		return slide(len - 1);
	};

	return slide(length);
}
